package com.sujetExercice.util;

public class MathUtil {
	
	private static MathUtil c = new MathUtil();
	public static MathUtil get(){
		return c;
	}
	
	
	/**
	 * Fonction qui permet d'arrondir un nombre a 1 chiffre apres la virgule
	 * @param nombre
	 * @return
	 */
	public String arrondirUnChiffre(double nombre){
		  return ""+Math.round(nombre * 10.0) / 10.0;
	}
	
	/**
	 * Fonction qui permet d'arrondir un nombre a 2 chiffres apres la virgule
	 * @param nombre
	 * @return
	 */
	public String arrondirDeuxChiffre(double nombre){
		  return ""+Math.round(nombre * 100.0) / 100.0;
	}
	
	/**
	 * Fonction qui permet d'arrondir un nombre a 3 chiffres apres la virgule
	 * @param nombre
	 * @return
	 */
	public String arrondirTroisChiffre(double nombre){
		  return ""+Math.round(nombre * 1000.0) / 1000.0;
	}
	
	
	/**
	 * Fonction qui permet de tronquer un nombre
	 * @param val : nombre a tronquer
	 * @param nbChiffreApresVirgule
	 * @return
	 */
	private String tronquerDouble(double val, int nbChiffreApresVirgule) {
		String s = ""+val;
		int idx = s.indexOf('.');
		if (idx != -1 && idx < s.length() - nbChiffreApresVirgule)
		s = s.substring(0, idx + nbChiffreApresVirgule+(nbChiffreApresVirgule==0 ? 0 : 1));
		return s;
	}
	
	
	/**
	 * Fonction qui permet de tronquer un nombre a 1 chiffre apres la virgule
	 * @param nombre
	 * @return
	 */
	public String tronquerUnChiffre(double nombre){
		return tronquerDouble(nombre,1);
	}
	
	/**
	 * Fonction qui permet tronquer un nombre a 2 chiffres apres la virgule
	 * @param nombre
	 * @return
	 */
	public String tronquerDeuxChiffre(double nombre){
		return tronquerDouble(nombre,2);
	}
	
	/**
	 * Fonction qui permet tronquer un nombre a 3 chiffres apres la virgule
	 * @param nombre
	 * @return
	 */
	public String tronquerTroisChiffre(double nombre){
		return tronquerDouble(nombre,3);
	}
	
}
